MySQL将查询的结果作为update更新的数据,且在原字段数据后 CONCAT拼接(lej) |
您所在的位置:网站首页 › mysql 修改表数据 › MySQL将查询的结果作为update更新的数据,且在原字段数据后 CONCAT拼接(lej) |
大家好,又见面了,我是全栈君。 update user INNER JOIN (SELECT GROUP_CONCAT('',id)AS app_id_str FROM `app` WHERE `admin_id` = '用户B的id' AND `status` > '0' AND `is_deleted` = '0' LIMIT 0,1000 ) app_id_strs set app_id= CONCAT(app_id,',',app_id_str) WHERE uid=用户A的id;释义: 1.查询app表中状态大于0,未删除,且admin_id=用户Bid 用户的所有主键id,并用(,)逗号 拼接成字符串别名 app_id_strs ; (SELECT GROUP_CONCAT('',id)AS app_id_str FROM `app` WHERE `admin_id` = '用户B的id' AND `status` > '0' AND `is_deleted` = '0' LIMIT 0,1000 ) app_id_strs2.更新用户A 的app_id, 在A用户原有的app_id 后,用CONCAT,拼接上查询出来的app_id_strs,并在两者之间用(,)逗号连接 扩展: 二、mysql中update和select结合使用在遇到需要update设置的参数来自从其他表select出的结果时,需要把update和select结合使用,不同数据库支持的形式不一样,在mysql中如下: update A inner join(select id,name from B) c on A.id = c.id set A.name = c.name;根据AB两个表的id相同为条件,把A表的name修改为B的sql语句就如上所示 三、update 和 select 结合使用进行数据更新,案例现有两张表 inspect_danger 和 company 表,根据 company 表的 ID 和 inspect_danger 表的COMPANY_ID 匹配,把 company 表内的 INDUSTRY 更新到 inspect_danger表中。 UPDATE inspect_danger ins LEFT JOIN ( SELECT com.ID,com.INDUSTRY,ip.ID insId FROM company com INNER JOIN inspect_danger ip ON ip.COMPANY_ID = com.ID GROUP BY com.ID ) c ON ins.ID = c.insId SET ins.COMPANY_INDUSTRY = c.INDUSTRY四、做SQL查询时会经常需要,把查询的结果拼接成一个字符串。 解决方法: 通过 group_concat 函数 1.正常查询 如下: select id result from ctp_enum_item limit 100;MySQL将查询的结果作为update更新的数据,且在原字段数据后 CONCAT拼接(lej)2.拼接结果 如下 select group_concat("'",id,"'") result from ctp_enum_item limit 100; MySQL将查询的结果作为update更新的数据,且在原字段数据后 CONCAT拼接(lej)3.因为拼接的结果很长,导致拼接结果显示不全,可以通过以下方法解决。 在每次查询前执行,使得查询结果值变大。 SET SESSION group_concat_max_len = 10240; 或者 SET GLOBAL group_concat_max_len = 10240;4.补充:SQL server 的 拼接SQL如下: select stuff(( select ','+ requestid from nccombinedpayment for xml path('')),1,1,'') as requestid ;五、mysql 对查询出来的字段拼接字符串 concat SELECT item_starttime,item_username,CONCAT('外出',item_wcaddress) as item_wcaddress,author from tlk_KQ_goout_app;拼接之前 MySQL将查询的结果作为update更新的数据,且在原字段数据后 CONCAT拼接(lej)拼接之后 MySQL将查询的结果作为update更新的数据,且在原字段数据后 CONCAT拼接(lej)六、浅析MySQL中concat以及group_concat的使用 七、mysql 往表中某个字段的字符串后追加字符串 update 表名 set 字段名=CONCAT(字段名,”需添加的值”)WHERE 条件; 例如: update np_order set customer_remark=CONCAT(customer_remark,"需添加的值")WHERE order_id='1'np_order :表名 customer_remark 字段名称 where 后指定条件 八、mysql 把select结果update更新到表中,从查询结果中更新数据 逻辑:两张表连接获取finishin的重量插入到sale. UPDATE sale INNER JOIN ( SELECT sale.FNo, sale.FEntryID, (finishin.FQty) AS qty FROM sale, finishin WHERE sale.FNo = finishin.FNo AND sale.FEntryID = finishin.FEntryID ORDER BY sale.FNo ) sale2 ON sale2.FNo = sale.FNo AND sale2.FEntryID = sale.FEntryID SET sale.FqtyIn = sale2.qty逻辑:timefinishin表中有多个相同的FBillNo,FEntryID一样的数据,通过分组来求和qty总重量,成为一张新的表和salesorderinfo进行连表 UPDATE salesorderinfo INNER JOIN ( SELECT salesorderinfo.FBillNo, salesorderinfo.FEntryID, (timein.FqtyIn) AS qty FROM salesorderinfo, ( SELECT *, SUM(timefinishin.FQty) AS FqtyIn FROM timefinishin GROUP BY FBillNo, FEntryID ) timein WHERE salesorderinfo.FBillNo = timein.FBillNo AND salesorderinfo.FEntryID = timein.FEntryID ) sale2 ON sale2.FBillNo = salesorderinfo.FBillNo AND sale2.FEntryID = salesorderinfo.FEntryID SET salesorderinfo.FqtyIn = sale2.qty发现好东西,https://httpbin.org/ 这个网站可以用来测试 http 请求 参考: https://blog.csdn.net/qq_36823916/article/details/79403696 https://blog.csdn.net/qq5621/article/details/108098826 https://blog.csdn.net/cydbetter/article/details/82117841 https://blog.csdn.net/mary19920410/article/details/76545053 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/111441.html原文链接:https://javaforall.cn |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |